var weixinMenu = {
	tpls : {
		menu : {},
		menuAdd : []
	},
	urls : {
		load : ""
	},
	menuData : {},
	loadData : function(cbak) {
		var data = {};
		base.ajax.get({
			url : this.urls.load,
			success : function(json) {
				data = json.data;
				// data = [];
				weixinMenu.menuData = data;
				cbak(data);
				$('#menu_load').hide();
			}
		});
	},
	initMenu : function() {
		var _this = this;
		this.loadData(function(data) {
			var html = _this.tpls.menu(data);
			$('#menu_node_ul').html(html);
			$('#menu_content').show();
			$('[data-toggle="tooltip"]').tooltip();
		});

	},
	addMenuLeve1 : function() {
		var _this = this;

		if (_this.menuData.length == 3) {
			base.dialog.alert({
				msg : "您最多只能拥有三个一级菜单"
			});
		} else {
			var msg = this.tpls.menuAdd({
				no : (3 - weixinMenu.menuData.length),
				levelName : '一'
			});
			_this.dialog
					.menuAdd({
						msg : msg,
						okCb : function(dialogRef) {
							var mv = dialogRef.getModalBody()
									.find('#menuValue').val();
							if ($.trim(mv).length == 0
									|| base.tools.getByteLen(mv) > 14) {
								var err = '<span  class="error">请输入名称（7个汉字或14个字母以内）</span>';
								$('#menuValue').after(err);
							} else {
								_this.createLeve1({
									type : null,
									name : mv,
									url : null,
									key : null,
									sub_button : []
								});
								dialogRef.close();
							}
						}
					});
		}
	},
	addMenuLeve2 : function(leve1) {
		var _this = this;
		var leve2Menu = _this.menuData[leve1];
		var lh = leve2Menu.sub_button.length;
		if (lh == 5) {
			base.dialog.alert({
				msg : "您最多只能拥有五个二级菜单"
			});
		} else {
			var msg = this.tpls.menuAdd({
				no : (5 - lh),
				levelName : '二'
			});
			_this.dialog
					.menuAdd({
						msg : msg,
						okCb : function(dialogRef) {
							var mv = dialogRef.getModalBody()
									.find('#menuValue').val();
							if ($.trim(mv).length == 0
									|| base.tools.getByteLen(mv) > 14) {
								var err = '<span  class="error">请输入名称（7个汉字或14个字母以内）</span>';
								$('#menuValue').after(err);
							} else {
								_this.createLeve2({
									leve1 : leve1,
									type : null,
									name : mv,
									url : null,
									key : null,
									sub_button : []
								});
								leve2Menu.type = null;
								leve2Menu.key = null;
								leve2Menu.url = null;

								dialogRef.close();
							}
						}
					});
		}
	},
	createLeve1 : function(menu) {
		var _this = this;
		var d = _this.menuData;
		var index = d.length;
		menu.index = index;
		d.push(menu);
		var html = this.tpls.menuLeve1(menu);
		$('#menu_node_ul').append(html);
		$('#menu_' + index).find('.menu_opr > a').click(function() {
			_this.addMenuLeve2(index);
		});
		$('#menu_' + index).find('.inner_menu_link').click(function() {
			_this.click(index);
		});
		_this.click(index);
	},
	createLeve2 : function(menu) {
		var _this = this;
		var sb = _this.menuData[menu.leve1].sub_button;
		menu.index = sb.length;
		sb.push(menu);
		var html = this.tpls.menuLeve2(menu);
		$('#menu_' + menu.leve1).find('ul').append(html);
		$('#menu_' + menu.leve1 + '_' + menu.index).find('.inner_menu_link')
				.click(function() {
					_this.click(menu.leve1, menu.index);
				});
		_this.click(menu.leve1, menu.index);
	},
	click : function(leve1, leve2) {
		var _this = this;
		var level1Menu = _this.menuData[leve1];
		$('.inner_menu_item').removeClass('selected');
		if (leve2 == undefined) {
			var subL = level1Menu.sub_button.length;
			$('#menu_' + leve1).find('div.inner_menu_item')
					.addClass('selected');
			if (subL == 0) {

				if (level1Menu.type == 'view') {
					$('.action_setting').html(_this.tpls.menuActionUrl({
						menuName : level1Menu.name,
						LeveName : '一',
						url : level1Menu.url
					}));
					_this.toolEven(leve1, leve2);

					_this.createGoPage(leve1, leve2);
				} else {
					var msg = this.tpls.menuinit({
						no : (5 - subL),
						menuName : level1Menu.name,
						LeveName : '一'
					});
					$('.action_setting').html(msg);
					_this.goPage(leve1, leve2);
				}
			} else {
				var msg = this.tpls.menuinitdefault({
					no : (5 - subL),
					menuName : level1Menu.name,
					LeveName : '一'
				});
				$('.action_setting').html(msg);
			}
			$('#initialCreate').click(function() {
				_this.addMenuLeve2(leve1);
			});
		} else {
			var level2Menu = level1Menu.sub_button[leve2];
			$('#menu_' + leve1 + '_' + leve2).addClass('selected');
			if (level2Menu.type == 'view') {
				$('.action_setting').html(_this.tpls.menuActionUrl({
					menuName : level2Menu.name,
					LeveName : '一',
					url : level2Menu.url
				}));
				_this.toolEven(leve1, leve2);
				_this.createGoPage(leve1, leve2);
			} else {
				var msg = this.tpls.menuinit({
					menuName : level2Menu.name,
					LeveName : '二',
				});
				$('.action_setting').html(msg);
				_this.goPage(leve1, leve2);
			}

		}
		_this.toolEven(leve1, leve2);
	},
	goPage : function(leve1, leve2) {
		var _this = this;
		var level1Menu = _this.menuData[leve1];
		if (leve2 == undefined) {
			$('#goPage').click(function(menuOption) {
				$('.action_setting').html(_this.tpls.menuActionUrl({
					menuName : level1Menu.name,
					LeveName : '一',
					url : level1Menu.url
				}));
				_this.toolEven(leve1, leve2);

				_this.createGoPage(leve1, leve2);

			});
		} else {
			var level2Menu = level1Menu.sub_button[leve2];
			$('#goPage').click(function(menuOption) {
				$('.action_setting').html(_this.tpls.menuActionUrl({
					menuName : level2Menu.name,
					LeveName : '二',
					url : level2Menu.url
				}));
				_this.toolEven(leve1, leve2);

				_this.createGoPage(leve1, leve2);

			});
		}

	},

	createGoPage : function(leve1, leve2) {
		var _this = this;
		var level1Menu = _this.menuData[leve1];

		$('#js_AddUrl_Btn').click(function(menuOption) {
			var murl = $('#menuUrl').val();
			if ($.trim(murl).length == 0) {
				$('#menuUrl').next('.error').html("请输入跳转地址");
			} else {
				if (leve2 == undefined) {
					level1Menu.url = murl;
					level1Menu.type = 'view';
				} else {
					var level2Menu = level1Menu.sub_button[leve2];
					level2Menu.url = murl;
					level2Menu.type = 'view';
				}
				base.dialog.alert({msg:'跳转地址保存成功'});
				$('#menuUrl').next('.error').html("");

			}
		});
	},
	toolEven : function(leve1, leve2) {
		var _this = this;
		var level1Menu = _this.menuData[leve1];
		if (leve2 == undefined) {
			$('#jsChangeBt')
					.click(
							function() {
								var msg = _this.tpls.menuChangeBt({
									name : level1Menu.name
								});
								_this.dialog
										.menuAdd({
											msg : msg,
											okCb : function(dialogRef) {
												var mv = dialogRef
														.getModalBody().find(
																'#menuValue')
														.val();
												if ($.trim(mv).length == 0
														|| base.tools
																.getByteLen(mv) > 14) {
													var err = '<span  class="error">请输入名称（7个汉字或14个字母以内）</span>';
													$('#menuValue').after(err);
												} else {
													level1Menu.name = mv;
													$('#menu_' + leve1)
															.find(
																	'div.inner_menu_item')
															.find(
																	'.inner_menu_item')
															.text(
																	level1Menu.name);
													$('#jsMN').text(
															level1Menu.name);

													dialogRef.close();
												}
											}
										});
							});
			$('#jsDelBt').click(
					function() {
						BootstrapDialog.confirm("是否确定删除“" + level1Menu.name
								+ "”,删除后，它的下级菜单也将全部删除。", function(result) {
							if (result) {
								$('#menu_' + leve1).remove();
								_this.menuData.splice(leve1, 1);
								var nexti = _this.menuData.length;
								if (nexti > 0) {
									_this.click(nexti - 1);
								} else {
									$('.action_setting').html("");
								}
							}
						});
					});
		} else {
			level2Menu = level1Menu.sub_button[leve2];
			$('#jsChangeBt')
					.click(
							function() {
								var msg = _this.tpls.menuChangeBt({
									name : level2Menu.name
								});
								_this.dialog
										.menuAdd({
											msg : msg,
											okCb : function(dialogRef) {
												var mv = dialogRef
														.getModalBody().find(
																'#menuValue')
														.val();
												if (base.tools.getByteLen(mv) > 14) {
													var err = '<span  class="error">请输入名称（7个汉字或14个字母以内）</span>';
													$('#menuValue').after(err);
												} else {
													level2Menu.name = mv;
													$(
															'#menu_' + leve1
																	+ '_'
																	+ leve2)
															.find('a')
															.html(
																	'<i class="icon_dot">●</i>'
																			+ level2Menu.name);
													$('#jsMN').text(
															level2Menu.name);

													dialogRef.close();
												}
											}
										});
							});
			$('#jsDelBt')
					.click(
							function() {
								BootstrapDialog
										.confirm(
												"是否确定删除“" + level2Menu.name
														+ "”。",
												function(result) {
													if (result) {
														$(
																'#menu_'
																		+ leve1
																		+ '_'
																		+ leve2)
																.remove();
														_this.menuData[leve1].sub_button
																.splice(leve2,
																		1);
														var nexti = _this.menuData[leve1].sub_button.length;
														if (nexti > 0) {
															_this.click(leve1,
																	nexti - 1);
														} else {
															_this.click(leve1);
														}
													}
												});
							});
		}
	},
	dialog : {
		menuAdd : function(option) {
			BootstrapDialog.show({
				message : option.msg,
				buttons : [ {
					label : '确定',
					action : function(dialogRef) {
						option.okCb(dialogRef);
					}
				}, {
					label : '取消',
					action : function(dialogRef) {
						dialogRef.close();
					}
				} ]
			});
		}
	}
};
